java - long 1l,float 1f,double 1d,byte呢?
全部标签 在ruby中,如果float是整数,我想将其转换为int。例如a=1.0b=2.5a.to_int_if_whole#=>1b.to_int_if_whole#=>2.5基本上,我试图避免在任何没有小数的数字上显示“.0”。我正在寻找一种优雅的(或内置的)方式来做defto_int_if_whole(float)(float%1==0)?float.to_i:floatend 最佳答案 一个简单的方法是:classFloatdefprettifyto_i==self?to_i:selfendend那是因为:irb>1.0==1=
假设我有以下代码:x=0.8y=1.0检查y是否等同于Integer的最佳方法是什么?目前我在做:y.to_int==y这行得通,但我觉得应该有更好的方法。 最佳答案 您用1mod值,并检查该值是否等于0。ify%1==0 关于ruby-检查Float是否等同于Ruby中的整数值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5083202/
在rspec中,您可以创建一个mock或一个double。这两个似乎几乎是同一件事,我在文档中找不到任何可以消除它们歧义的内容。有什么区别? 最佳答案 mock和stub都是更通用的double的别名。与context和describe一样,它们可以互换使用,以使规范的意图更加清晰。这在TheRSpecBook中有更详细的描述。. 关于ruby-on-rails-在RSpec中,mock和double之间有什么区别?,我们在StackOverflow上找到一个类似的问题:
在rspec文档中说明我应该使用double方法来创建测试替身。但我可以看到,即使我不使用double,它也能正常工作。不使用double有什么问题吗?另外,如果我不使用doubleMyClass如何获取stub和其他rspec方法?在rspec中运行时,它们是否可用于所有对象?require'spec_helper'classMyClassdefself.runnew.executeenddefexecute'foo'endenddescribeMyClassdoit'shouldstubinstancemethod'doobj=MyClass.newobj.stub(:execut
我很喜欢格式化一个float,但如果没有相关的float,我希望它显示为一个整数。即1.20->1.2x1.78->1.78x0.80->0.8x2.00->2x我可以通过一些正则表达式来实现这一点,但想知道是否有一个sprintf-only方法可以做到这一点?我在ruby中懒洋洋地这样做:("%0.2fx"%(factor/100.0)).gsub(/\.?0+x$/,'x') 最佳答案 您想使用%g而不是%f:"%gx"%(factor/100.00) 关于ruby-如果floa
我知道我可以用rand(max)生成随机float。我试图生成一个范围内的float,这应该不难。但是例如rand(1.4512)返回0,因此rand不是用float计算的。现在我尝试了一个小技巧,将它转换为一个整数,然后在我想要的范围内随机化一个合适的数字后,将它计算回一个float......这是行不通的。我的问题是如何以更好的方式做到这一点。如果没有更好的方法,为什么这个方法不起作用?(也许对我来说太晚了,我应该在2小时前开始sleep……)。整个事情旨在成为一种计算数据库记录“位置”字段的方法,以便用户可以手动订购它们。我以前从未做过这样的事情,也许有人可以用更好的解决方案提示
在Ruby中可以设置float的显示精度吗?类似于:z=1/3z.to_s#=>0.33333333333333z.to_s(3)#=>0.333z.to_s(5)#=>0.33333或者我是否必须覆盖Float的to_s方法? 最佳答案 z.round(2)或x.round(3)是最简单的解决方案。参见http://www.ruby-doc.org/core-1.9.3/Float.html#method-i-round.也就是说,这只会确保它不超过那么多位数。在1/3的情况下没问题,但如果你说0.25.round(3)你会得到0
如果我有一个49.967的float并且我执行.to_i它将把它削减到49这对于我使用磁盘空间分析.967超过900mb的空间不会在显示中考虑。是否有将数字四舍五入到最接近的整数的函数,或者我必须像这样自己定义它:classFloatdefto_nearest_i(self+0.5).to_iendend这样我就可以做:>>5.44.to_nearest_i=>5>>5.54.to_nearest_i=>6 最佳答案 试试Float.round。irb(main):001:0>5.44.round=>5irb(main):002:0
我想格式化一个包含浮点变量的字符串,包括带有固定小数位数的它们,我想用这种格式化语法来实现:amount=Math::PIputs"Currentamount:#{amount}"我想获得当前金额:3.14。我知道我可以用amount=Math::PIputs"Currentamount%.2f"%[amount]但我想问是否有可能以#{}方式进行。 最佳答案 您可以使用"#{'%.2f'%var}":irb(main):048:0>num=3.1415=>3.1415irb(main):049:0>"Piis:#{'%.2f'%n
class这是什么为了?我搜索了,但结果只告诉我有关字符串连接的信息... 最佳答案 虽然class是真的是单例类的语法,正如其他人所说,它最常用于在类定义中定义类方法。但是这两种用法是一致的。方法如下。Ruby允许您通过以下方式向任何特定实例添加方法:class这添加了一个方法foo对某个实例,不是对它的类,而是对那个特定实例。(实际上,foo被添加到实例的“单例类”,但这或多或少是一个实现怪癖。)上面的代码执行后,您可以将方法foo发送到某个实例:someinstance.foo=>"Hello."但是您不能将foo发送到同一类